Building and playing with models online is becoming increasingly popular among various users. Internet-based virtual worlds are simulated, enabling users to travel within a virtual world, play games within the virtual world, and interact with other inhabitants (i.e., other users) of the virtual world.
Such virtual environments may utilize physics simulation to provide physical realism to the appearance and movement of objects in the virtual environment. Certain objects, such as buildings, cars, trains, etc., which are provided by virtual world environments are composed of multiple parts, with certain parts joined together. For example, a car in a virtual environment can be constructed of hundreds or thousands of parts that are modeled as rigid bodies and connected by physics joints. The physics joints restrict relative motion of parts when a motion of the car is simulated in the virtual environment.
With such structures, that consist of many parts, there is computational overhead that impacts physics simulation, and the transmission, display, and rendering of virtual environments. For example, a large building can be constructed out of three dimensional (3D) virtual blocks that are connected with physically simulated welds (or some other type of rigid joints). If some blocks at the bottom of the building are removed, the simulated building will fall over. There is, however, computational overhead exerted on the simulation as the collection of 3D virtual blocks move. Each of the 3D virtual blocks is connected by rigid joints, where the rigid joints must be simulated thereby incurring a computational expense at the physics simulation engine. That is, a building constructed of 10,000 blocks would require the simulation of thousands of joints, welds, etc. between the individual parts.
Furthermore, there is a significant bandwidth expense for transmitting 3D objects over a network, especially in a multiplayer online environment. A 3D game server, that provides physical simulation to a virtual environment, sends the positions and orientation of the individual blocks to multiple client devices over a network. As the number of individual blocks and client devices grows the impact and load requirements placed on network bandwidth are multiplied creating an enormous bandwidth expense in providing the multiplayer online environment.